package com.ruoyi.business.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 货品信息对象 goods
 * 
 * @author ruoyi
 * @date 2025-03-20
 */
public class Goods extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增长主键 */
    private Long id;

    /** 货品代码 */
    @Excel(name = "货品代码")
    private String goodsCode;

    private long userId;

    /** 品名规格 */
    @Excel(name = "品名规格(必填)")
    private String goodsSpec;

    /** 供应商品名 */
    @Excel(name = "供应商品名")
    private String supplyGoodsName;

//    @Excel(name = "图片")
    private String goodsImage;


    /** 货品类别ID */
    @Excel(name = "货品类别")
    private String goodsCategoryName;

    private Long goodsCategoryId;

    /** 主计量单位 */
    @Excel(name = "主计量单位")
    private String primaryUnit;

    /** 辅助单位 */
    @Excel(name = "辅助单位")
    private String secondaryUnit;

    /** 换算率（辅/主） */
    @Excel(name = "换算率", readConverterExp = "辅=/主")
    private BigDecimal conversionRate;

    /** 库存数量 */
    @Excel(name = "库存数量")
    private BigDecimal stockQuantity;

    /** 期初成本 */
    @Excel(name = "期初成本")
    private BigDecimal initialCost;

    /** 进货价 */
    @Excel(name = "进货价")
    private BigDecimal purchasePrice;

    /** 零售价 */
    @Excel(name = "零售价")
    private BigDecimal retailPrice;

    /** 批发价1 */
    @Excel(name = "批发价1")
    private BigDecimal wholesalePrice1;

    /** 批发价2 */
    @Excel(name = "批发价2")
    private BigDecimal wholesalePrice2;

    /** 最高库存 */
    @Excel(name = "最高库存")
    private BigDecimal maxStock;

    /** 最低库存 */
    @Excel(name = "最低库存")
    private BigDecimal minStock;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public String getGoodsImage() {
        return goodsImage;
    }

    public void setGoodsImage(String goodsImage) {
        this.goodsImage = goodsImage;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setGoodsCode(String goodsCode) 
    {
        this.goodsCode = goodsCode;
    }

    public String getGoodsCode() 
    {
        return goodsCode;
    }

    public void setGoodsSpec(String goodsSpec) 
    {
        this.goodsSpec = goodsSpec;
    }

    public String getGoodsSpec() 
    {
        return goodsSpec;
    }

    public void setSupplyGoodsName(String supplyGoodsName) 
    {
        this.supplyGoodsName = supplyGoodsName;
    }

    public String getSupplyGoodsName() 
    {
        return supplyGoodsName;
    }

    public String getGoodsCategoryName() {
        return goodsCategoryName;
    }

    public void setGoodsCategoryName(String goodsCategoryName) {
        this.goodsCategoryName = goodsCategoryName;
    }

    public Long getGoodsCategoryId() {
        return goodsCategoryId;
    }

    public void setGoodsCategoryId(Long goodsCategoryId) {
        this.goodsCategoryId = goodsCategoryId;
    }

    public void setPrimaryUnit(String primaryUnit)
    {
        this.primaryUnit = primaryUnit;
    }

    public String getPrimaryUnit() 
    {
        return primaryUnit;
    }

    public void setSecondaryUnit(String secondaryUnit) 
    {
        this.secondaryUnit = secondaryUnit;
    }

    public String getSecondaryUnit() 
    {
        return secondaryUnit;
    }

    public void setConversionRate(BigDecimal conversionRate) 
    {
        this.conversionRate = conversionRate;
    }

    public BigDecimal getConversionRate() 
    {
        return conversionRate;
    }

    public void setStockQuantity(BigDecimal stockQuantity) 
    {
        this.stockQuantity = stockQuantity;
    }

    public BigDecimal getStockQuantity() 
    {
        return stockQuantity;
    }

    public void setInitialCost(BigDecimal initialCost) 
    {
        this.initialCost = initialCost;
    }

    public BigDecimal getInitialCost() 
    {
        return initialCost;
    }

    public void setPurchasePrice(BigDecimal purchasePrice) 
    {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getPurchasePrice() 
    {
        return purchasePrice;
    }

    public void setRetailPrice(BigDecimal retailPrice) 
    {
        this.retailPrice = retailPrice;
    }

    public BigDecimal getRetailPrice() 
    {
        return retailPrice;
    }

    public void setWholesalePrice1(BigDecimal wholesalePrice1) 
    {
        this.wholesalePrice1 = wholesalePrice1;
    }

    public BigDecimal getWholesalePrice1() 
    {
        return wholesalePrice1;
    }

    public void setWholesalePrice2(BigDecimal wholesalePrice2) 
    {
        this.wholesalePrice2 = wholesalePrice2;
    }

    public BigDecimal getWholesalePrice2() 
    {
        return wholesalePrice2;
    }

    public void setMaxStock(BigDecimal maxStock) 
    {
        this.maxStock = maxStock;
    }

    public BigDecimal getMaxStock() 
    {
        return maxStock;
    }

    public void setMinStock(BigDecimal minStock) 
    {
        this.minStock = minStock;
    }

    public BigDecimal getMinStock() 
    {
        return minStock;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("goodsCode", getGoodsCode())
            .append("goodsSpec", getGoodsSpec())
            .append("supplyGoodsName", getSupplyGoodsName())
            .append("primaryUnit", getPrimaryUnit())
            .append("secondaryUnit", getSecondaryUnit())
            .append("conversionRate", getConversionRate())
            .append("stockQuantity", getStockQuantity())
            .append("initialCost", getInitialCost())
            .append("purchasePrice", getPurchasePrice())
            .append("retailPrice", getRetailPrice())
            .append("wholesalePrice1", getWholesalePrice1())
            .append("wholesalePrice2", getWholesalePrice2())
            .append("maxStock", getMaxStock())
            .append("minStock", getMinStock())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
